+JJJJ ?> / X5 l>ҭōŠԠΠӍҠͭҭōΠĠΠΠǠǠǠFO.s$TAG $CURSOR $EQUAL A $SYNTAX pFUELLERr;VfDISK18 . CALLDUMP.TEXTVf.HCALLDUMP2.TEXTfHVSUPERDUMP.TEXTfV` SUPERDUMP.LIBVf`d EPSON.TEXT;Vfdf EPSON.CODE;VffjIMAGEWRITR.TEXTjlIMAGEWRITR.CODElpLIB.TEXTr;Vf&꽌ɪɖ'*&%&,E'зЮ꽌ɪФ`+*xH&x'8*7Ixix&&  ') + &п x) ++`FG8`0($ p,&") (jJJ>L+ "?I>  N `  ` x V Nx .x- z `V0^*^*>` aI꽌ɪVɭ&Y&&Y& 꽌ɪ\8`&/.PROC CallDump, 1 / ;***************************************************** ;* "S U P E R D U M P" * ;* Hires Dump f}r alle Graphik-Drucker * ;* f}r Apple II, Apple II plus, Apple //e, Apple //c *  ;* von J}rgechend oft gedruckt CMP Yfactor BEQ Hstart2 INC Counter JMP Hstart1 Hstart2 LDA Lnumber ;die laufende Zeilennummer wird CLC ;wird um 8 erh|ht und mit d STY Lnumber ;in Lnumber eintragen Hstart LDA #001 ;Z{hler f}r Dehnung in STA Counter ;Y-Richtung Hstart1 JSR H1line ;Bei Dehnung wird horizontale LDA Counter ;Zeile entspr BEQ Horprint ;vertikalen Druck 0JMP Verprint ;*********************************************************** Horprint JSR Pinit ;Zeilenvorschub etc. setzen LDY Top ;Zeile mit der begonnen wird LDA Frame ;Test auf Bildrahmen BEQ NoFrame JSR DrwFrame NoFrame JSR ICtrlAdr ;Initialisiere CtrlBlk Adresse LDA Direct ;Test auf horizontalen oder LDA Hires560 BEQ No560 ;keine Modifikation n|tig JSR GetSoft LDA Page1 LDA Hires LDA OnDble STA On80Str STA On80Col No560 JMP StoD  Command5 RTS Command0 LDA #40 0STA SSCstrobe ;Standardwert f}r Apple //e mit SSC 0LDA Comptype 0CMP #2 ;Apple 2c mit SSC 0BNE $1 0LDA #20 ;Strobe f}r SSC im Apple 2c 0STA SSCstrobe 0  $1 Command2 CMP #002 BNE Command3 JMP Move2to1 Command3 CMP #003 BNE Command4 JMP DtoS Command4 CMP #004 BNE Command5 ;***********************************************************  PgmStart LDA Command ;Test auf Kommando BEQ Command0 CMP #001 BNE Command2 JMP Move1to2 *********************************  0PLA 0STA Return 0PLA 0STA Return+1 PLA 0STA Base 0PLA 0STA Base+1 0 0LDY #Parameters-1  $1 LDA (Base),Y 0STA CtrlBlk,Y 0DEY 0BPL $1 0 0LDA Return+1 0PHA 0LDA Return 0PHA age .EQU 0C01C SwHires .EQU 0C01D Sw80Col .EQU 0C01F Page1 .EQU 0C054 Page2 .EQU 0C055 Lores .EQU 0C056 Hires .EQU 0C057 OnDble .EQU 0C05E  ;********************************************** Write .EQU 01 ;Code f}r printer write  Pwrite .EQU 0FF09 ;Zeichen an Drucker senden  Off80Str .EQU 0C000 On80Str .EQU 0C001 Off80Col .EQU 0C00C On80Col .EQU 0C00D Sw80Str .EQU 0C018 SwPifiz. Adresse der Parameter  LF .EQU 00A ;ASCII Code f}r Zeilenvorschub CR .EQU 00D ;ASCII Code f}r Wagenr}cklauf  Buffer .EQU 200 ;Zwischenspeicherung schiebung eines Bildes  Dest .EQU 22 ;f}r Verschiebung eines Bildes  Base .EQU 22 ;Basisadresse f}r Graphikzeile  Base1 .EQU 24 ;f}r Konvertierung von Bildern  Madr .EQU 24 ;Moden Gei~, August 1985 * ;*****************************************************  Parameters .EQU 2A ;f}r Parameter}bergabe  Return .EQU 20 ;Pascal Return Adresse  Source .EQU 20 ;f}r Verem ADC #008 ;unteren Bildrand verglichen STA Lnumber CMP Bottom 0BCC Hstart BEQ Hstart JMP Quit H1line JSR Initline Hrepeat1 JSR PrHline ;drucke eine horizontale Zeile JSR Sendbits ;Zwischenraum bei mehreren Bildern DEC Rcounter ;f}llen BNE Hrepeat1 JSR PrHagain ;bei 4-fach Druck nochmaSR Print ;und vergr|~ere das Bild in DEX ;X-Richtung BNE Hagain ;fertig mit Vergr|~erung? LDY Ysave ;rechter Bildschirmrand schon CPY Right+1 ;erreicht? EY BNE Hloop5 DEC Vcount BNE Hloop4 EOR XOR ;negativ- oder positiv- Druck JSR SetNeedl ;Nadeln eventuell konvertieren LDX Xfactor Hagain J LDX Yfactor DEX ;Y-Faktor mindestens gleich 1 Hloop6 ROR Buffer,X ;hole dir Bits aus dem Puffer DEX BPL Hloop6 0ROL A ;und f}lle Akku damit DYcount BNE Hloop2 PLP DEY BNE Hloop1 LDX Counter ;Dehnung in Y-Richtung STX Vcount Hloop4 LDY #008 Hloop5 CLC STX Ycount Hloop2 LDX Yfactor STX Hcount LDX #000 Hloop3 ROL Buffer,X INX DEC Hcount BNE Hloop3 PLP PHP DEC PrH3 STA SaveMask JSR SetEdge Hgood LDY #008 LDA Asave ;vergr|~ere in Y-Richtung um  Hloop1 LSR A ;Y-Faktor PHP LDX Yfactor PrH2 LDA #0FF ;erstelle Maske, falls unterer PrH3 ASL Asave ;Bildrand erreicht ist, bevor 0ASL A ;alle Drucknadeln gef}llt sind DEC Hcount ;blende so ungenutzte Bits aus BNE LDA Vcount ;ist der untere Bildrand CMP Bottom ;schon erreicht? BEQ PrH2 INC Vcount ;nein, n{chste Zeile holen JMP PrH ;und weitermachen eicht ist DEX ;hole jeweils ein Bit aus den BPL PrH1 ;n{chsten 8 Zeilen und vereinige ROL Asave ;diese zu einem Byte DEC Hcount BEQ Hgood t PrH LDA Vcount ;hole Zeilennummer und JSR Bascalc ;berechne Zeilenadresse JSR GetByte LDX Bitcount ;Rechtsverschiebung bis linker  PrH1 LSR A ;Rand im Byte err LDY Left+1 ;hole linker Rand (in Bytes) Xloop STY Ysave LDA Lnumber ;laufende Hires-Zeilennummer STA Vcount ;Zwischenz{hler f}r Zeile LDA #008 STA Hcoun*************************** PrHline LDA #000 ;Wagenr}cklaufz{hler mit 0 f}llen STA CRcount PrHline1 LDA Left ;hole linker Rand (in Bits) STA Bitcount ck JSR PrHagain Hrpt1 JSR Initline Hrepeat2 JSR PrHline JSR Sendbits DEC Rcounter BNE Hrepeat2 SkpDstrk JSR PrLF RTS ;********************************l drucken JSR LS1 LDX Impres CPX #001 ;Test auf 2-fach Druck BEQ Hrpt1 CPX #002 ;Test auf 4-fach Druck BNE SkpDstrk ;weder 2- noch 4-fach Dru BNE Hagain1 0LDA Bitcount CMP Right BEQ Hagain3 Hagain1 INC Bitcount ;erh|he Bitz{hler LDA Bitcount ;alle 7 Bits schon abgearbeitet? CMP #007 BNE Hagain2 INY ;n{chstes Byte LDA #000 STA Bitcount Hagain2 JMP Xloop Hagain3 INC CRcount ;vergleiche die Anzahl der LDA CRcount ;Wagenr}ck STA SaveMask AND Asave STA Asave JSR SetEdge Vok LDY #007 Vok1 LSR A PHP LDX Xfactor STX Xcount Vok20 LDX Xfactor RMbit LDA Asave LDY Left+1 CPY Ysave BNE Vok LDX Left BEQ Vok LDA #0FF Genmask ASL A DEX BNE Genmask 0BEQ RMbit TAX INX LDA #0FF Lnloop1 LSR A DEX BNE Lnloop1 STA SaveMask AND Asave STA Asave JSR SetEdge STA Lnumber Lineloop JSR Bascalc LDY Ysave JSR GetByte STA Asave CPY Right+1 BNE RMbit LDA #006 SEC SBC Right TAY DEY CMP Left+1 BNE Vstart JMP Quit ;*********************************************************** PrVline LDA #000 STA CRcount PrVline1 LDA Top DEC Rcounter BNE Vrepeat2 Skip_ds JSR PrLF LDA Counter CMP Xfactor BEQ Next_X INC Counter JMP Countrlp Next_X LDA Ysave LDX Impres CPX #001 BEQ Not_ds CPX #002 BNE Skip_ds JSR PrVagain Not_ds JSR Initline Vrepeat2 JSR PrVline JSR Sendbits LDA #001 STA Counter Countrlp JSR Initline Vrepeat1 JSR PrVline JSR Sendbits DEC Rcounter BNE Vrepeat1 JSR PrVagain JSR LS1 JSR Sendbits DEC Rcounter BNE PrVagan1 PrVagan2 RTS ;*********************************************************** Verprint JSR Pinit LDY Right+1 Vstart STY Ysave Edge LDA Asave ;werden RTS ;*********************************************************** PrVagain LDA Impres CMP #002 BNE PrVagan2 JSR Initline PrVagan1 JSR PrVline LDA SaveMask ;unbenutze Bits, die bei vorzei- EOR XOR ;tigem Abbruch an Bildr{ndern ORA Asave ;noch nicht gesetzt wurden ge- STA Asave ;l|scht und mit XOR behandelt XSet BNE PrHagan1 PrHagan2 RTS ;*********************************************************** SetEdge LDA XOR ;teste auf Randfall BEQ XSetEdge ;nur bei negativ-Druck m}ssen ************************* PrHagain LDA Impres CMP #002 ;4-fach Druck BNE PrHagan2 JSR Initline PrHagan1 JSR PrHline JSR Sendbits DEC Rcounter l{ufe mit der aller CMP DiffPics ;verschiedenen Bilder und drucke BEQ XPrH ;eventuell dieses neue Bild direkt JMP PrHline1 ;neben das alte XPrH RTS ;********************************** STX Hcount LDX #000 Vok2 ROL Buffer,X INX DEC Hcount BNE Vok2 PLP PHP DEC Xcount BNE Vok20 PLP DEY BNE Vok1 LDX Counter STX Vcount Vok3 LDY #007 Vok4 CLC LDX Xfactor DEX Vok5 ROR Buffer,X LS1 JSR Plf1 ;1/216" oder 1/144" Zeilenvorschub 0RTS ;f}r 2- oder 4-fach Druck ;*********************************************************** Quit JSR Pexit ;Abschlu~steuerzeichen an Drucker ************************************************* PrLF LDA #LF ;neue Zeile auf Drucker JSR Print ;das CR kommt an anderer Stelle RTS ;***********************************************************  BEQ Exitsend Sendthem LDA #000 ;Zwischenraum wird mit 000 ge- Send1 JSR Print ;f}llt DEX BNE Send1 DEY BPL Send1 Exitsend RTS ;*************************** Sendbits LDA Rdistnce ;Zwischenraum zwischen 2 oder mehr TAX ;gleichen Bildern pro Zeile LDA Rdistnce+1 TAY BNE Sendthem TXA Zeile initialisieren JSR Print JSR Pline ;Grafiksteuerzeichen senden LDA Rfactor ;Wiederholfaktor merken STA Rcounter RTS ;****************************************** ;nochmal Status Register 0AND SSCstrobe ;unterschiedlich bei Apple //e und Apple 2c 0BNE SSCwait 0TXA 0STA 0C088,Y ;Zeichen an SSC senden 0RTS 0 ;*********************************************************** Initline LDA #CR ;;***********************************************************  WSSC TAX 0LDY #10 ;immer Slot 1  SSCwait LDA 0C089,Y ;Status Register 0AND #10 ;teste Bit 4 0BEQ SSCwait ;Bit 4 gleich 0 => warten 0LDA 0C089,Y Pwrite   Pready LDA Hires560 0BEQ $0 0 0STA On80Str ;Pascal 1.2 CONCK 0  $0 PLA TAY PLA TAX LDA Asave PLP RTS STA Asave TXA PHA TYA PHA LDA Asave 0LDX Comptype 0BEQ Regular 0JSR WSSC 0JMP Pready 0  Regular LDX #Write ;Ausgabe }ber Pascal Schnittstelle 0JSRHneedle ;Bit 1 -> Bit 6 DEX ;usw. bis BNE SetN ;Bit 7 -> Bit 0 LDA Hneedle XitSetN RTS ;*********************************************************** Print PHP SetNeedl LDX Needle ;diese Routine invertiert die BEQ XitSetN ;Drucknadeln, wenn dies gew}nscht LDX #008 ;wird in folgender Weise:  SetN ROR A ;Bit 0 -> Bit 7 ROL gain1 INC CRcount ! LDA CRcount ! CMP DiffPics ! BEQ XPrV ! JMP PrVline1  XPrV RTS   ;*********************************************************** r Vagain JSR Print DEX BNE Vagain LDX Lnumber INC Lnumber ! LDA Lnumber ! CPX Bottom ! BCS Vagain1 ! JMP Lineloop !  Va DEX BPL Vok5 ROL A DEY BNE Vok4 DEC Vcount BNE Vok3 EOR XOR AND #07F JSR SetNeedl LDX YfactoLDA Hires560 BEQ XitQuit JSR PutSoft ;Apple //e Softswitches einstellen XitQuit RTS ;zur}ck zum aufrufenden Programm ;*********************************************************** GetSoft ASL Sw80Str ;diese Routine rettet alle ROL SaveSoft ;Apple //e Softswitches, die ASL SwPage ;bei Darstellung der 560 Punkte- ROL SaveSoft ;Graphik ge{ndert werden m}ssen O.B A $CURSOR $EQUAL  ;abschlie~endes CR JSR Print LDY #030 ;abschlie~ende Steuerzeichen BNE PrParam ;***********************************************************  .INCLUDE CALLDUMP2.TEXT *********************************************** Plf1 LDY #020 ;Steuerzeichen f}r 1/216" oder BNE PrParam ;1/144" Zeilenabstand ;*********************************************************** Pexit LDA #CR Zeilenabstand BEQ PrParam ;etc. ;*********************************************************** Pline LDY #010 ;Steuerzeichen zum Umschalten auf BNE PrParam ;Graphikbetrieb des Druckers ;************PrParam1 INY LDA (Madr),Y JSR Print DEX 0BNE PrParam1 0LDX Xsave XitParam RTS ;*********************************************************** Pinit LDY #000 ;Steuerzeichen f}r ;*********************************************************** PrParam LDA (Madr),Y ;hier steht die L{nge des Strings BEQ XitParam ;wenn = 0 dann nichts drucken STX Xsave TAX dr := CtrlAdr + 64 * CtrlBlk BNE IM CLC LDA CtrlAdr ADC Madr STA Madr LDA CtrlAdr+1 ADC Madr+1 STA Madr+1 RTS STA Madr+1 ;block hat die L{nge von LDX #006 ;2^6 = 64 Bytes. Also ergibt sich IM ASL Madr ;f}r den Kontrollblock eine ROL Madr+1 ;Adresse von: DEX ;Ma;*********************************************************** ICtrlAdr LDA CtrlBlk ;der Benutzer kann unter ver- STA Madr ;schiedenen Druckparameter- LDA #000 ;bl|cken w{hlen. Ein Kontroll- STA Lores PutSoft2 LSR SaveSoft STA Page1 BCC PutSoft3 STA Page2 PutSoft3 LSR SaveSoft BCS XPutSoft STA Off80Str XPutSoft RTS veSoft ;stellt alle Softswitches, die BCS PutSoft1 ;eventuell ver{ndert wurden auf STA Off80Col ;ihren alten Status vor dem Auf- PutSoft1 LSR SaveSoft ;ruf des Druckens BCS PutSoft2 ASL SwHires ;und speichert diese in SaveSoft ROL SaveSoft ;ab ASL Sw80Col ROL SaveSoft RTS ;*********************************************************** PutSoft LSR Sa ;include file "CALLDUM2.TEXT"   ;*********************************************************** DrwFrame LDA #000 JSR Bascalc LDY #027 LDA Hires560 BEQ Fnormal LDY #0lc RTS ;*********************************************************** Switch LDA Hires560 BEQ XSwitch ;keine Modifikation n|tig TYA ;wenn Hires560 eingeschaltet war, 0LSR A ;wird Y LDX CRcount ;nur hintereinander im Speicher BEQ XBascalc ;liegen m}ssen Bascalc1 CLC LDA Base+1 ADC #020 STA Base+1 DEX BNE Bascalc1 XBasca LDA Base+1 ;zeile geholt usw. AND #01F ;damit ist es m|glich, viele ver- ADC Address+1 ;schiedene Bilder nebeneinander STA Base+1 ;auf dem Drucker auszugeben, die eben, sondern vielmehr LDA Base ;von der n{chsten Graphikseite, ADC Address ;die ja 02000 weiter oben im STA Base ;Speicher liegt, die erste Druck- 0ASL A ;DiffPics auf 2 gestellt werden 0ROL Base+1 ;beim ersten Druckvorgang wird 0ASL A ;dann von "Address" an gedruckt, ROR Base ;beim n{chsten kein CR an den CLC ;Drucker gegBilder in einer STA Base+1 ;Druckzeile ausgegeben werden 0ASL A ;sollen 0ASL A ;soll ein gro~es Bild, das zwei 0ASL A ;Graphikseiten umfa~t nebenein- 0ROL Base+1 ;ander ausgegeben werden, so mu~ 0LSR A ;sprechend der Adresse, die in 0LSR A ;"Address" angegeben wurde ORA Base ;au~erdem wird zur Basisadresse 0STA Base ;noch so oft 2000 aufaddiert, PLA ;wie verschiedene **************************** Bascalc PHA ;berechnet die Basisadresse der AND #0C0 ;Zeile, die im Akku }bergeben STA Base ;wurde und modifiziert sie ent- ame6 AND Asave Frame7 STA Asave LDA Asave JSR PutByte INX 0CPX #191. ;unterer Bildrand schon erreicht? BCC Frame3 RTS ;******************************* BEQ Fnormal6 LDY #04F Fnormal6 JSR GetByte STA Asave LDA #040 EOR XOR CMP #040 BNE Frame6 ORA Asave BNE Frame7 Fr BNE Frame5 ;unbedingter Sprung Frame4 AND Asave Frame5 STA Asave LDA Asave JSR PutByte LDY #027 ;hier rechter Rand zeichnen LDA Hires560 en Frame3 TXA JSR Bascalc LDY #000 JSR GetByte STA Asave LDA #001 EOR XOR BMI Frame4 ;negativ ORA Asave LDA Hires560 BEQ Fnormal1 LDY #04F Fnormal1 LDA #0FF EOR XOR Frame2 JSR PutByte DEY BPL Frame2 LDX #001 ;hier linker Rand zeichn4F Fnormal LDA #0FF EOR XOR Frame1 JSR PutByte DEY BPL Frame1 0LDA #191. ;Achtung! Dezimalzahl der unteren JSR Bascalc ;Bildzeile LDY #027 := Y/2 gesetzt TAY ;dies folgt aus dem Aufbau der BCC AuxRam ;Double-Hires beim Apple //e STA Page1 ;Ram auf Hauptplatine RTS AuxRam STA Page2 ;Ram auf 64k-Karte XSwitch RTS ;*********************************************************** GetByte STY Ysave2 ;holt ein Hires-Byte aus dem JSR Switch ;entsprechenden Speicher Y Ysave STA (Base1),Y DEC Ysave2 DEY STY Ysave BPL DtoS2 LDY #027 DtoS3 JSR GetByte STA Page1 STA (Base),Y ve2 ;die linke H{lfte kommt in Seite 1 JSR ADC20 ;die rechte in Seite 2 (ab 04000) DtoS2 LDY Ysave2 ;dieses Teil verschiebt die rechte JSR GetByte ;H{lfte zuerst nach Seite 2 LDDtoS1 TXA ;auf normale 280*192 Bilder LDY #027 ;des Apple II STY Ysave ;das Apple //e Bild wird in linke LDY #04F ;und rechte H{lfte gespalten STY Ysa STA Base1+1 RTS ;*********************************************************** DtoS JSR ConvInit ;Umwandlungsroutine von Doppel- LDX #000 ;hires Bildern des Apple //e ave JSR Bascalc LDX Xsave CLC ;Base zeigt immer auf Seite 1 LDA Base ;Base1 immer auf Seite 2 STA Base1 LDA Base+1 ADC #020 STA Address+1 LDA #001 STA Hires560 JSR GetSoft LDA Hires STA On80Str RTS ;*********************************************************** ADC20 STX XsConvInit LDA #000 ;initialisiert einige Werte vor STA CRcount ;dem Konvertieren von Bildern STA Address ;rettet Softswitches und LDA #020 ;schaltet entsprechend um NY BNE Move INC Source+1 INC Dest+1 DEX BNE Move JSR PutSoft RTS ;*********************************************************** mer von oder zur 64k Karte STY Dest ;geschoben JSR GetSoft LDA Hires STA On80Str LDA Page2 Move LDA (Source),Y STA (Dest),Y I STX Source+1 ;diese Routine verschiebt jeweils 0STY Dest+1 ;ein Bild der L{nge 2000 von LDX #020 ;von Source nach Dest LDY #000 ;bei einem Apple //e wird dabei STY Source ;im;*********************************************************** Move2to1 LDX #040 ;schiebt Bild von Main Ram Seite 2 LDY #020 ;nach Aux Ram Seite 1 ;*********************************************************** DoMove *********************************************************** Move1to2 LDX #020 ;schiebt Bild von Aux Ram Seite 1 LDY #040 ;nach Main Ram Seite 2 BNE DoMove ;entsprechenden Speicher JSR Switch ;280 oder 560 Punkte Graphik PLA ;diese Routine wird nur von STA (Base),Y ;DrawFrame und StoD benutzt LDY Ysave2 RTS ; LDA (Base),Y ;280 oder 560 Punkte Graphik LDY Ysave2 RTS ;*********************************************************** PutByte STY Ysave2 ;schreibt ein Byte in den PHA DEY BPL DtoS3 INX ;n{chste Zeile 0CPX #192. ;h|chstens 192 BNE DtoS1 JSR PutSoft ;alter Status wieder herholen RTS ;*********************************************************** StoD JSR ConvInit ;diese Routine ist die Umkehr- LDX #000 ;funktion zu obiger StoD1 TXA ;damit lassen sich zwei Teil- ple //e Soft-Switches  SSCstrobe .WORD 40 ;Strobe f}r Super-Serielle-Karte   ;******************************************************************************* / /.FUNC Adr, 1 /  Return .EQU 00 0 0PLA 0STA Return 0PLA 0STA R .WORD 00 ;Y-Z{hler  CRcount .WORD 00 ;Z{hler f}r Wagenr}ckl{ufe  Hneedle .WORD 00 ;zum Invertieren der Nadel  SaveMask .WORD 00 ;rettet Maske f}r XOR  SaveSoft .WORD 00 ;rettet Ap Vcount .WORD 00 ;Vertikaler Z{hler  Bitcount .WORD 00 ;Bit Z{hler  Counter .WORD 00 ;Allgemeiner Z{hler  Rcounter .WORD 00 ;Repeat Z{hler  Xcount .WORD 00 ;X-Z{hler  Ycount ;rette Akkumulator  Xsave .WORD 00 ;rette X-Register  Ysave .WORD 00 ;rette Y-Register  Ysave2 .WORD 00 ;rette Y-Register  Hcount .WORD 00 ;Horizontaler Z{hler 2000 @;3=Konvertiere 560 -> 2*280 @;4=Konvertiere 2*280 -> 560   ;****************************  ;* Verschiedene Hilfsgr|~en *  ;****************************  Lnumber .WORD 00 ;Graphikzeilennummer  Asave .WORD 00 Nadel, 1 = Bit 0 obere Nadel  Comptype .WORD 00 ;0 = Apple II oder Apple //e mit Parallel-Karte @;1 = Apple //e mit SSC @;2 = Apple 2c mit SSC  Command .WORD 00 ;0=Drucken @;1=Aux 2000 -> Main 4000 @;2=Main 4000 -> Aux  Hires560 .WORD 00 ;0 = normale, 1 = 560 Punkte Graphik  AutoLF .WORD 00 ;0 = LF nach CR, 1 = kein LF nach CR  DiffPics .WORD 00 ;Anzahl verschiedener Bilder  Needle .WORD 00 ;0 = Bit 0 untereldrand (0..191)  Bottom .WORD 00 ;unterer Bildrand (0..191)  Xfactor .WORD 00 ;Dehnung in X-Richtung (1..31)  Yfactor .WORD 00 ;Dehnung in Y-Richtung (1..31) lung f}r gleiche Bilder  Rdistnce .WORD 00 ;Distanz zw. 2 oder mehr Bildern  Left .WORD 00 ;linker Bildrand (0..559)  Right .WORD 00 ;rechter Bildrand (0..559)  Top .WORD 00 ;oberer Bi oder f}r jedes Byte  Direct .WORD 00 ;Richtung (0=horiz., 1=vertik.)  Frame .WORD 00 ;0 = kein Rand, 1 = Rand  Address .WORD 00 ;Bildadresse ($2000 f}r Seite 1)  Rfactor .WORD 00 ;Wiederho ;*********************  CtrlBlk .WORD 00 ;Nummer des Kontrollblockes  CtrlAdr .WORD 00 ;Adresse des Kontrollblockes  Impres .WORD 00 ;1-, 2- oder 4-fach Druck  XOR .WORD 00 ;Exklusives! ! INX 0CPX #192. ! BNE StoD1 ! ! JSR PutSoft ! RTS !  ;******************************************************************************* /  ;*********************  ;* ]bergabeparameter * INY CPY #028 BNE StoD2 0STY Ysave2 0LDY #000 0STY Ysave 0  StoD3 LDY Ysave 0LDA (Base1),Y 0LDY Ysave2 0JSR PutByte 0INC Ysave 0INY 0STY Ysave2 ! CPY #050 ! BNE StoD3 JSR ADC20 ;bilder, die in Seite 1 und 2 LDY #000 ;liegen zu einem einzigen StoD2 STA Page1 ;Doppelhires Bild des Apple //e LDA (Base),Y ;zusammenfassen JSR PutByte eturn+1 / 0PLA 0PLA 0PLA 0PLA 0 0LDA Return+1 0PHA 0LDA Return 0PHA 0RTS 0  ;*******************************************************************************  /.END $EQUAL $CURSOR $TAG $SYNTAX ctor; $Rdistance := DumpParams.Rdistance; $Left := DumpParams.Left mod 7 + DumpParams.Left div 7 * 256; $Right := DumpParams.Right mod 7 + DumpParams.Right div 7 * 256; $Top := DumpParams.Top; $Bottom := DumpParams.Bottom; $Xk := 0; $CtrlAdr := DumpParams.CtrlAdr; $Impression := DumpParams.Impression; $XOR := DumpParams.XOR; $Direction := DumpParams.Direction; $Frame := DumpParams.Frame; $PicAddr := DumpParams.PicAddr; $Rfactor := DumpParams.Rfa procedure CallDump (Params : Paramtype); external;   {------------------------------------------------------------------------}  procedure Dump {DumpParams : Dumptype};   var Params : Paramtype;   begin {Dump} "with Params do "begin $CtrlBl Aux $2000 -> Main $4000 L2 = Main $4000 -> Aux $2000 L3 = convert 560 -> 2*280 L4 = convert 2*280 -> 560} 3end; {Paramtype}  {------------------------------------------------------------------------} Right : integer; 5Top : 0..191; 5Bottom : 0..191; 5Xfactor : 1..31; 5Yfactor : 1..31; 5Hires560 : 0..1; 5AutoLF : 0..1; 5DiffPics : 1..8; 5Needle : 0..1; 5Comptype : 0..2; 5Command : 0..4 {0 = dump L1 = : 0..1024; {# of control block (always zero)} 5CtrlAdr : integer; 5Impression : 0..2; 5XOR : 0..255; 5Direction : 0..1; 5Frame : 0..1; 5PicAddr : integer; 5Rfactor : integer; 5Rdistance : integer; 5Left : integer; 5 {------------------------------------------------------------------------------}  implementation  {$C unit SuperDump written by Juergen Geiss}  {$I-}  {$R-}   const Xdots = 560; &Ydits = 192; &  type Paramtype = record 5CtrlBlk e Convert560;  procedure Convert280;  procedure SetDefault (var DumpParams : Dumptype);  procedure GetGrafBytes (DumpParams : Dumptype; var Bytes : integer; var Bytestr : string);  function Adr (var AnyVariable) : integer; 1..31; 2Yfactor : 1..31; 2Hires560 : 0..1; 2AutoLF : 0..1; 2DiffPics : 1..8; 2Needle : 0..1; 2Comptype : 0..2 0end; {Dumptype}   procedure Dump (DumpParams : Dumptype);  procedure MoveAuxMain;  procedure MoveMainAux;  procedurion : 0..2; 2XOR : 0..255; 2Direction : 0..1; 2Frame : 0..1; 2PicAddr : integer; 2Rfactor : integer; 2Rdistance : integer; 2Left : 0..559; 2Right : 0..559; 2Top : 0..191; 2Bottom : 0..191; 2Xfactor :  unit SuperDump;  intrinsic code 26;  interface  type CtrlStr = string [15]; % %CtrlBlk = record 2Pinit : CtrlStr; 2Pline : CtrlStr; 2Plf1 : CtrlStr; 2Pexit : CtrlStr 0end; {CtrlBlk} % %Dumptype = record 2CtrlAdr : integer; 2Impress|.wfactor := DumpParams.Xfactor; $Yfactor := DumpParams.Yfactor; $Hires560 := DumpParams.Hires560; $AutoLF := DumpParams.AutoLF; $DiffPics := DumpParams.DiffPics; $Needle := DumpParams.Needle; $Comptype := DumpParams.Comptype; $Command := 0 "end; {with} " "CallDump (Params)  end; {MoveAuxMain}   {------------------------------------------------------------------------}  procedure MoveAuxMain;   var Params : Paramtype;   begin {MoveAuxMain}  Params.Command :  type CtrlStr = string [15]; % %CtrlBlk = record 2Pinit : CtrlStr; 2Pline : CtrlStr; 2Plf1 : CtrlStr; 2Pexit : CtrlStr 0end; {CtrlBlk} % %Dumptype = record 2CtrlAdr : integer; 2Impression : 0..2; 2XOR : 0..255; 2Direction : 0.D SUPERDUM ---------------------------------------------------------------------}  begin {SuperDump}  end {SuperDump}. &Bytestr [I] := chr (ord ('0') + B mod 10); $ B := B div 10 $end {while} "end {with}  end; {GetGrafBytes}   {------------------------------------------------------------------------}  function Adr {(var AnyVariable) : integer}; external;  {---(Right - Left + 1) $else B := Yfactor * (Bottom - Top + 1); " $B := (B + Rdistance) * Rfactor * DiffPics; $B := abs (B) mod 10000; $Bytes := B; $Bytestr := '0000'; $ $for I := 4 downto 1 do $begin ------------}  procedure GetGrafBytes {DumpParams : Dumptype; 8var Bytes : integer; 8var Bytestr : string};   var B : integer;  I : integer;   begin {GetGrafBytes}  with DumpParams do "begin " if Direction = 0 $then B := Xfactor * 192; $Rfactor := 1; {these 7 must be <> 0} $Right := 279; $Bottom := 191; $Xfactor := 1; $Yfactor := 1; $DiffPics := 1 "end {with}  end; {SetDefault}  {------------------------------------------------------------------ {------------------------------------------------------------------------------}  procedure SetDefault {var DumpParams : Dumptype};  begin {SetDefault} "fillchar (DumpParams, size_of (DumpParams), 0); " "with DumpParams do "begin $PicAddr := 8------------------------------------------------------------}   procedure Convert280;   var Params : Paramtype;   begin {Convert280} "Params.Command := 4; "CallDump (Params)  end; {Convert280}  {MoveMainAux}   {------------------------------------------------------------------------}  procedure Convert560;    var Params : Paramtype;   begin {Convert560} "Params.Command := 3; "CallDump (Params)  end; {Convert560}   {------------= 1; "CallDump (Params)  end; {MoveAuxMain}   {------------------------------------------------------------------------}  procedure MoveMainAux;   var Params : Paramtype;   begin {MoveMainAux} "Params.Command := 2; "CallDump (Params)  end; .1; 2Frame : 0..1; 2PicAddr : integer; 2Rfactor : integer; 2Rdistance : integer; 2Left : 0..559; 2Right : 0..559; 2Top : 0..191; 2Bottom : 0..191; 2Xfactor : 1..31; 2Yfactor : 1..31; 2Hires560 : 0..1; 2AutoLF : 0..1; 2DiffPics : 1..8; 2Needle : 0..1; 2Comptype : 0..2 0end; {Dumptype}   procedure Dump (DumpParams : Dumptype);  procedure MoveAuxMain;  procedure MoveMainAux;  procedure Convert560;  procedure Convert280;  procedure SehhhhhhHH` < |  #Iٕȍ Nōצproc place err  N (ǐɡ sep seg 2 big ȡ~xn^TSRQOMD:8652-)%! |{zyVOL>.-*(&" {xwvuqpmlih`_^]\YWRQPOKHGFEDB=<;:65410/.-*)( "$#i %` _'<O> {> <$><' T" ` _ {T" (><<$> <Ȍ>P `@I?83.)%$ 8-888 '*O 8@M@ 8-888 ࿐`H)"JJ""h# &# &# f""m"#)m#N #i #`* JT`U`> ">`>H h">` @@ !# " WU "!# `N * W`: : 4` 4` 1` 5* `.T.T.T.T`NT NTVNTTUNT` $%$&%e$$e%%`$:ȱ$ 4:` ߩ 40֩ '*OM  '*OM   8M0 8 8< R-88 J&J&@>@(J(ܮFB&~*BM) "( 4666$L`NN.LZ`0 j.PP`8HH82 `LO *hh8(`)-V񊙈` 4 -H`<!D DDȩDLNN.L` w H` RM 888` w U H` )!<F w U H    w U H F&FL<ЭLN"6 < 8!8 JR-8 F(FL6i6$L w H    w H `ND<6B@B  DJ.8@B$BL8 @R 8J(L(@>@(L(ܮFB(~*BM "& 4á  'צ0000Pġ0  !,ph h!h"h#)" !H H4L+L1LL`@V2 V* TW^  > L )"6Fب !"#$%&'() Ph * * * *& ٢ ٢٢ ٢ ǿ٢ ٢ ٢:ڨtDefault (var DumpParams : Dumptype);  procedure GetGrafBytes (DumpParams : Dumptype; var Bytes : integer; var Bytestr : string);  function Adr (var AnyVariable) : integer; --) {------------------------------------------------------------------------------}  implementation E ure Dump (DumpParams : Dumptype);  procedure MoveAuxMain;  procedure MoveMainAux;  procedure Convert560;  procedure Convert280;  procedure SetDefault (var DumpParams : Dumptype);  procedure GetGrafBytes (DumpParams : Dumptype; var Bytes : integer; var Bytestr : string);  function Adr (var AnyVariable) : integer; --)ˡsep seg read err5Ǡō bad proc dict!   ȡ ˡq Nc P D= ǀ* U/$CURSOR $EQUAL O^hhǿǿ# ##_6צ-3- צ-K---J-ת-2ת  _ _# !0PRINT Pexit [1] := chr (ESC); end; {with} Dump (DumpParams) end {Print}. '; Plf1 := '-J-'; Pexit := '-2'; Pinit [1] := chr (ESC); Pinit [3] := chr (23); Pline [1] := chr (ESC); Pline [3] := chr (Bytes mod 256); Pline [4] := chr (Bytes div 256); Plf1 [1] := chr (ESC); Plf1 [3] := chr (1); ncolor (white); moveto (279, 191); moveto (0, 191); moveto (0, 0); SetDefault (DumpParams); DumpParams.CtrlAdr := Adr (CtrlBlock); GetGrafBytes (DumpParams, Bytes, S); with CtrlBlock do {EPSON} begin Pinit := '-3-'; Pline := '-K--{LISTING 2} program Print; {EPSON VERSION} uses TurtleGraphics, SuperDump; const ESC = 27; var CtrlBlock : CtrlBlk; DumpParams : Dumptype; S : string; Bytes : integer; begin {Print} Initturtle; moveto (0, 0); peLO.ԬԬ{LISTING 3} program Print; {Imagewriter-Version} uses TurtleGraphics, SuperDump; const ESC = 27; var CtrlBlock : CtrlBlk; DumpParams : Dumptype; S : string; Bytes : integer; begin {Print} Initturtle; moveto (0, 0)RITR.CODE kann jetzt ausgef}hrt werden.  Alle Slots mit dem "=" Befehl kopieren  5. Mittels N(ew "SUPERDUMP.LIB" holen  6. Slot 1 nach Slot 7 oder anderen freien Slot kopieren (1 7)  7. Programm mit "q" und anschlie~endem verlassen  8. Testprogramm EPSON.CODE oder IMAGEW Anleitung zum Einbinden von SUPERDUMP.LIB in die SYSTEM.LIBRARY   1. Starten von LIBRARY.CODE auf der APPLE3: Diskette  2. Auf die Frage Output Code File mit SYSTEM.LIBRARY antworten  3. Auf die Frage Link Code File mit SYSTEM.LIBRARY antworten  4.*O.ԬԬ$CURSOR $EQUAL ȡۤˡ áڢڢˍ? P ˡآڤ á Cá>آآ*Í k vޢ̹ǿǿ# #45#_6צ-T16-> ``צ-n-G`6T`תצ-<-A  #  ilenamenT0PRINT ); Pline [1] := chr (ESC); Pline [3] := chr (ESC); Pexit [1] := chr (ESC); Pexit [3] := chr (ESC); end; {with} Dump (DumpParams) end {Print}. ; {fuer Apple 2c mit SSC} GetGrafBytes (DumpParams, Bytes, S); with CtrlBlock do {Imagewriter} begin Pinit := '-T16->'; Pline := concat ('-n-G', S); Plf1 := ''; Pexit := '-<-A'; Pinit [1] := chr (ESC); Pinit [5] := chr (ESC; pencolor (white); moveto (279, 191); moveto (0, 191); moveto (0, 0); SetDefault (DumpParams); DumpParams.CtrlAdr := Adr (CtrlBlock); "DumpParams.Needle := 1; DumpParams.Comptype := 1; {fuer Apple //e mit SSC} {DumpParams.Comptype := 2;:3400:A$"N"L12:L26:3450:2670+ 1 :E Eingabe von Sy CX%0:CY%8:(CX%,CY%):"Bitte S eingeben: ";S 9:15);"S = ";S:CL% 11:20);"Richtig? ";:3400:A$"N"2820" , :6 Eingabe von R@ CX%0:CY%14:(CX%hrittweite 0!":2680# TS02730> T1T0TT1:T1T0:T0TH 2740c T0T1TT0:T0T1:T1Tz L11:L27:3450:2 "T l{uft von: ";T0 " bis: ";T1 " mit Schrittweite: ";TS% :10);"Ist das richtig? "";P 3400:A$"N"2610Z 3d T in Schleifen CY%2:CX%0:(CX%,CY%):"Bitte Startwert: ";T0:CX%40:(CX%,CY%):"und Endwert f}r T eingeben: ";T1x CX%0:CY%4:(CX%,CY%):"Nun bitte die Schrittweite eingeben: ";TS TS0Ģ7:(7);"Nie Sc( STX01:LG(X)X0LG(2)1STST1L X0((10)X0):ST((10)ST):R :i Eingabe Parameter} Eingabe von T( (P$,1)"K"26702 CY%3:CX%0:(CX%,CY%):"Bitte T eingeben: ";T< 4:14);"T = ";T:CL%F :20);"Richtig? YS(X)(MYXBY.5)L ;V x-Achse an y-Achse anpassenl` FA279191:XLFA(YLYH)2:XHFA(YHYL)2:j y-Achse an x-Achse anpassent FA279191:YL(XLXH)(2FA):YH(XHXL)(2FA):~ : f}r Skalierung X0(LG(X)):X0LG(X)X0X01Y1:YHYHY0Y1EMXBXX0XHXL:X1MXBX:XHMXX1X0:XLBXX1X0{MYBYY0YHYL:Y1MYBY:YHMYY1Y0:YLBYY1Y0:2080 :$ Umrechnung Bildschirm. MX559(XHXL):BXMXXL8 MY191(YHYL):BYMYYHB XS(X)(MXXBX.5): ";:3400:A$"J"İ1850u(X1X0)(X1X0)(Y1Y0)(Y1Y0)ĺ:"Nie mit 0 strecken oder stauchen!"(7):219020:"Alles o.k.? ";:3400:A$"N"ĺ:2:"Bitte wiederholen!";:CL%:2190X0X1XLXLX0X1:XHXHX0X1Y0Y1YLYLY0:" x-Achse strecken? ";:3400:A$"J"İ1700m:5:" y-Achse strecken? ";:3400:A$"J"İ1750:8:"Nun bitte das Verh{ltnis positiver/negativer Achsenabschnitt:"::" F}r x-Achse? ";:3400:A$"J"İ1800:12:" F}r y-Achse?ŵűűűԮō̠Š΍127390:L1360:LL1:430* A$A$X$G A32Ğ:(A64);::420P X$;e L31LL1:370q " "L::"3 ENDE"X$:X$"1"X$"2"X$"3"160:X$"3"Ā*** MACROS EINLESEN *** X$"1"ė::(4)"CAT":"NAME: ";N$:ĠנŠРЍɮɬ 换ɮɬ ԮîҠ`L B c  , 0 `(Oқ ף :6<BXcȲ)u-?V墺䠱ҍ墺 ĠŠ Ҡ 6  ٱ` ٲXVL 莞 ( i : 1 wm m Lg w8   ` 6 `   ` 8  莞 `8`߿߿ݿ֧翿߿ڿ翿 6    ˩ %  c  a`  p 莞 `L  ɫɭ p 6莞 ͺ " ɡ   p ͿȌ `L ȹ` ʠL U ɫsɭLWɿ ɨ?ɽ8 6 2  Lv c  U 8n 8 J # `Ϡٮ 6  - L ɺ.==% =$= D ڰBɽ=L>ɢɧ'N>ɡ->$%⎞ L = N =%$ =,0 m  ͣ  ̢  `, 0L  ti R"O " Rt̢ tͣ OL}  i Ȱ莞 `L 莞 HN 6H7H76$ u  h7h6h  :` L":"NAME: ";N$:(4)"STORE";N$:: *** MACROS POKEN ***E "Y16Z ,H36182(Y1)32f 6H,L(Y) @X1L(Y):HH1:H,((S$(Y),X,1))128:X JY T ^*** INPUT MACROS *** hL1:A$"" rX$:X$""380:L1360:LL1:430 |A(X$):A(4)"RESTORE";N$:290:2 *** MACROS ANLEGEN ***T :"DEL = ENDE MACRO-EINGABE"e Q,W,E,R,T,Z{ :Y16:M$(Y): Y16:::M$(Y);::": ";:360:S$(Y)A$:L(Y)L: :"OKAY J/N "; X$:X$"N"100 X$"J"250 :290:(4)"CATrd:::M$(6),S$(6),L(6)=n:"PRODOS.EDITOR-MACROS":Yx:"1 MACROS EINLESEN""s:"2 MACROS ANLEGEN":"3 ENDE"X$:X$"1"X$"2"X$"3"160:X$"3"Ā*** MACROS EINLESEN *** X$"1"ė::(4)"CAT":"NAME: ";N$: `$0L e e`u`/:`fe: SԠ`<=`>?<>=?L```SMEREGNAHC WIRD ZU LANG! E - ENDE, W - WEITER: PROGRAMM WIRD ZU LANG! BREAKERSETZEN ? J/N, E - ENDE, A - ALLE: ?VERBOTENER DELIMI0 ,ת \ۊ ^ \ۊ @ \ۤЭ 2H h2`, {I$! d$`$Fנ L gh΄F eHɃ$0ȱuȱv \c,0ɲɃ e e e e ke, eΤυijLȸ"p,ep,:妸$ cB Y՘8,e c Lޅi mՈ8`  !P" a {)_"٨`0 :)L}8` d$0 W Wۢ߆ʆנ Ljd d7 W۠ϩЅ , BcEANJ d(`1` : Lԥiejit݆ijLӥ2 ӥBeij?ijL, ڦPQ` U)_Uf0Kf0SVf0Tf0IL΅ Ƀ )_`,0Ƀ \cLԍ] :LLcةt` :L* -d䐅Ȅ لՅI8eՅ8 Lfa LcЩ Lc$ -d -d$ӱp a{)_$ -d -d fbeH$0-) bh  ن$0چ ?dLah ` : : BcEW \ La \Lԥ 8܅e ?dO` : :TERN`O `)_N3 ``ɠ`vB `Ld `8`ɍȹ)I ʠ .Ն ʆ c-,  cF8fFF cF wcPQ ֥ij l֥LԠȱuȱvuv㥸ܥ_, f Lԍ```:;,0ɶe /:`fe: SԠ`<=`>?<>=?L```SMEREGNAHC WIRD ZU LANG! E - ENDE, W - WEITER: PROGRAMM WIRD ZU LANG! BREAKERSETZEN ? J/N, E - ENDE, A - ALLE: ?VERBOTENER DELIMI  ֠Ӎ ٽ ĠÍѠIJà؍؍àIJà؍ӍΠՠԍԠƍ ٠غ٫孍ؠ򠨱ؠ󩍠٠ٰҩ٠䮠婍Ω٠ٍ؍ŠٰؠҠҠҠĠ٫ؠΠΠ荠Ҡč٠٠ŠİŠӍ  庍àԠǍɠōРԍ ҩ ҩ  卪 觢 ӠǠ積ŠǠ砿Ԡ֠Ạ 碍ٍӠİǠР⺠ ѠŠ὾獠Р򠧺 ѠŠ὾ı٠ 쬍  ǠŠı٠Ġ֠碩İҩ٠ѠŠ占Р占Р὾占ѠŠР卪 纍ŠҠ٠Πν占٠Ϋͺ٠ԍРԠ     庍Ҡ٠ҠÍҠĠ卪 荪 򭍪  ͠Ҡ٠ҠÍҠĹ占ѠĠ򩍪 àˠ΍à٠РԠð덠ҩ٠ѠĠ占Р²͠Ѡ͠፠РѠԠ٠占ŠРðРàŠàԠǠ˿ɠà፠Ǡ躠˭獠٠讍ҩ٠ٍҩٍҠŠ٠ҫΠ٠ΫҠǠ̠Ѝ ĠҠ٠Р٠ҩ٠堿ѠŠ὾ ᢍǠ٠占ҠùŠҠñ򠱠荠àԠ̠Ǡ占РĸŠ庠ҍ ͭ ŠҠî͠٠ҠҠ占ӠҸҴР䠿àҠҸҠҠẠҍ䍠 ҠӍ ǠԠ̠Ҡᠿ獠ҠԠ̠àԠ󠱲Ӎ ҠŰíѠҴɫ占ԠðƠ̠Ҵ 嬠㍠Р䠿àõ󩍠٠Šΰ򍪍 ҺĠҠŸ̍ ҠǍҠŸ̠쿩ҠĸŠҍǍàҠµà̠ˠ占βРӠγؠẠ䭍ާҠµàޠγҠµà٠ؠҠµ占٠İİİİ鍠Šˠ؍̠ˍˠҠķà̠ˠ占ɠˠˠҠķà؍ ᢍ٠ΰ٠٠٠֍ŠҠŸ占Рα٠͍ŠαҠŸ̍αҠҠҬ獠٠ҩٍѠĠ占̠βɺ ͭ ΰҠǠẠΠԠɠΰҠµ占ҠIJҠµ占ؠؠԠ򠦍ؠĠ؍ؠĠ٠ѩӠũ ý  庍ԠРà̍Рà͍ĠƍРŰč͠Í̠Ӎ z#?  ˠԠȠ̭ ĭ ӮР! ԮϮЮϠ"ϮЮϠٮҠԮٮҮϠ!ٮҮϠ ԮЮ ԮЮ ԮЮ ԮЮ ԮЮ ԮȠ ЮȠ ®ٮʠ!ҠԠ"í ԮϠ ԮŠ;ԮؠԮԮؠ7ԮŮӠTԠ ŮӠӮҮӠ®٠Ԯ®ٮʠ 2:"Wollen Sie die Darstellungsgrenzen komplett neu eingeben? ";:3400:A$"J"ĺ:1:"Dann bitte Eingabe wiederholen!":1950z:"Kleinere Manipulationen an den Achsen. Wollen Sie Erl{uterungen? ";:3400:A$"J"ID$"3":55102::3CL%%4(40,16):"Gr|~tes X: ";XHL>(0,18):"Kleinstes Y: ";YL;:CL%tH(40,18):"Gr|~tes Y: ";YH;:CL%R:22:"Ist das richtig? ";:CL%\3400:A$"J"ĺ:2350fI0:X0I:Y0I:X1I:Y1I:MXI:MYI:BXI:BYI:clr Hilfsvar.p:2YL0YL0YH0YH0)XL0XL08XH0XH0yYLYHXLXHĺ(7);"Eingabefehler! Bitte wiederholen!":1950 YLYHİ2420XLXHİ2400 13:"Die Darstellungsgrenzen wurden wie folgt festgelegt: "*(0,16):"Kleinstes X: ";XL;:X%0:(CX%,CY%):CL%:"Minimum f}r X: ";XL]CX%40:(CX%,CY%):CL%:"Maximum f}r X: ";XHCY%9:CX%0:(CX%,CY%):CL%:"Minimum f}r Y: ";YLCX%40:(CX%,CY%):CL%:"Maximum f}r Y: ";YHXLXHXXL:XLXH:XHXYLYHXYL:YLYH:YHX YN X:&bDarstellungsgrenzenRlXLXHYLYHė:2080:alte Werte zeigenv:"Bitte Darstellungsgrenzen eingeben! W}nschen Sie Erl{uterungen? ";3400:A$"N"ĺ:17:1950ID$"2":5510:"Bitte Grenzen eingeben !"+CY%6:C%1:(CX%,CY%):"Anteil f}r positiven ";MXgCX%40:(CX%,CY%):"f}r negativen Achsenabschnitt ";BXms&:0 Y-Achse neu teilen:CY%11:CX%1:(CX%,CY%):"Anteil f}r positiven ";MYDCX%40:(CX%,CY%):"f}r negativen Achsenabschnitt ";Bhse ";X06CX%40:(CX%,CY%):"zu neue Achse ";X1<B:b Y-Achse strecken/stauchenCY%4:CX%1:(CX%,CY%):"Verh{ltnis alte Achse ";Y0CX%40:(CX%,CY%):"zu neue Achse ";Y1: Neue Aufteilung X-Achse+CY%9:CX;" in Zeile ";LN: x:4 Grafik/Text umschaltenZ 16368,0: l|sche Keyboardstrobe (PG%)Ĺ16303,0:PG%,1::Textseite 16304,0:PG%,0::Grafikseite :  X-Achse strecken/stauchen CY%2:CX%1:(CX%,CY%):"Verh{ltnis alte AcZahl eingeben!":(CX%,CY%)::fehlerhafte Eingabe FER6LN6060ĉ:(21)::(7)"Achtung! File PLOT.BX fehlt!":"Plot.3.e abgebrochen!"(7): PER0ER16ĉ:(21)::(7)"DOS-Fehler #";ER;" in Zeile ";LN: Z:(21):20:(7)"Fehler Code # ";ER)"K"X00:T:s. 1030& (7):A$:, :C  Fehlerbehandlungl LN(218)256(219):ER(222):3087 ER133ER69ER53XASTX:X00:1060 (Illegal Quantity, Overflow, Division by Zero 2ER2556460:Hauptmen}2 <ER254ĺ:(7)"Bitte Y0191(Y1Y0)X00:1160:=> Poli tY1Y0191Y1191Y0X00:1090:Keine Verbindung zwischen Polen ~X0,Y0X1,Y1:X0X1:Y0Y1: Zeichnen / neuer Ausgangspunkt XXHXXST:1070 II1:P(0,I)R:P(1,I)S:P(2,I)T:Parameterliste (P$,1(KE%)127İ1500:umschalten?Z 8(PG%)į(14,20):X;:CL%:PRINT, wenn Textseite aktiv BX0X0XS(X):Y0YS(Y(X)):1160:Ausgangspunkt LX1XS(X):Y1YS(Y(X)):Endpunkt VY10Y10: gegen 'illegal Quantity' `Y1191Y1191" jY119196000:Subroutinen folgen9 Subroutine ZeichnenRF$""XLYHYLXHıuX00:ST1MX: Initialisierung(P$,1)"K"āTT0T1TS: Starte T-Schleife3300:XAXL: Generiere Liste in Textseite$XXA:XXH1160:Start x-Schleife .                   CA :"DR. ALFRED HUETHIG VERLAG":"HEIDELBERG POSTF. 102869"D ±ıűƍ òƳ Ĵôƍ ĶÍ ̱ ¸ò ΍ ٨ة İ 卪 卪 ¬؍ ō ؍ Ѝ Ѝ Ӎ ¬؍ Ǎ Ǎ Ѝ Ӎ ԧ  ðƱ:>"&*.26:>#'+/37;?#'+/37;? @҄ө8?Fӆ&`8p((((((((((PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP $(,048< $(,048"&*.26:>#'+/37;?#'+/37;? $(,048< $(,048"&*.26:>#'+/37;?#'+/37;? $(,048< $(,048A* f}r APPLE //e, //c *ZA* *vA* Hans-Martin Eng *A* *A * 24. Februar 1986 *A* *A **********************Start x-Schleife .File PLOT.3.PRO korrigiert das, l{dtI@D und startet PLOT.3.E von NeuemO@N:@X8:5:"Programm Plot.3.e wird geladen"::14:"Bitte warten"@b(4)"EXEC PLOT.3.PRO"@l:@**********************@* *A* P l o t 3. 5 Datenliste zeigen5?PG%,0:1510:3300:A$:6460R? Zusammenfassung / Men}X?:i? 6 Zeichnen?PG%,1:1500:1020:6460? Grafikseite/Men}?:?0 Pointer in ($67) falsch gesetzt, das Programm liegt in der$@: 1. Grafikseite. EXEC-60>6 Eingabe Parameter/Men}%>@:>>J 3 Funktionseingabea>TPG%,0:1510:3700:3160:6460>^ Eingabe Funktion/Parameter?/Parametereingabe/Men}>h:>r 4 Bildschirm>|I0:16302,0:3500:6460> Zeichne Achsen und Skala/Men}>:?, es hat Spa~ gemacht !",=20:36:"HME";J=::6000:f}r evtl. CONTP=:l= 1 Darstellungsgrenzen=PG%,0:1510:1900:3500:6460= Eingabe Grenzen/zeichne Achsen und skaliere/Men}=:=" 2 Parametereingabe>,PG%,0:1510:3150:64sten"*<(16,15):"6 - Wieder zeichnen"I<(16,17):"7 - Disk-Men}"g<(16,22):"0 - aufh|ren"<A$:A$" "İ1510:6560<A$"0"A$"7"6560<(A$)6660,6700,6740,6780,6820,6860,5000<:< 0 Programmende=:(21)::10:"Hoffe======================================================="h;P(16,05):"1 - Darstellungsgrenzen {ndern";Z(16,07):"2 - Parameter {ndern";d(16,09):"3 - Funktion {ndern";n(16,11):"4 - Bildschirm s{ubern"  L   m1 m2͹ ̸  L{  o `  `׭563 ]L{ lȱ&' 3L׿ >` ˿ۿ W`& d`  s`, 0 ,  U   '&  ` `庠ӶıﺠӶıﺠh8h9T+D L `` "`` ɯN n !)̂펑5 [L! l L L Ϳ 7խE Pɭ\e ]о3# 4$ 56 3 )ّ$6m4i,  #Lu n٠ș [e0.e g)f0Ч L b`*`șɯ  `ɡɠ`  Q ɫɭ 6 L ",  mmLm&m', '& u,   L `ɯϠР06`6046`L N  L ɯ^8鰐f ɬ 8鱐L 莞 eJf g)(jf eH8 h Ȍ  N N `L 6  ` ɥL p $ 莞  p  . LN `  ` ɰ ɺ ǐ8`ۿ޾ۿϿ뿿ӿÿ 2` &  L  HJJJJ & h) ɺiL H h` O L8 { L U LU %, ` $, ` U , 0LLB U , 0 , 0L ` 6 7 - A ɬ0 6 . - ) ,  N ,  ̝ H̞ h  ,   Lk  Ƀ O LD ɡɠؠ6 KL 7 8 L_ G  LG S  `)`,  H?2h , Ҡֱ G ` ̟  G ̞  ` O ɅH  h S G ɠL N N Ʉ ̟ ߹̟ Ο  Lk Ɉ Ξ Lk ɉ Хɍ LQ ɕ 2ɘ  Lk ɛ M Lk :Lk   /LD  1 ` } (    M E 6P Å7I8  ]` 8  u ` 8J    U `ӠҠ         RT-PREFIXE 10:"ORIGINAL IN DRIVE 1"::10:"DUPLIKAT IN DRIVE 2"p :(4);"BRUN";SP$;"KOPY.160.SPUR.O":H2(PL512)ĺ"NUR GANZE BLOCKANZAHL!":P768:PAGE-3-PARAMETERP,DU160:+128-FUER-D2P1,HU16128:+128-FUER-D2. P3,14,0:KOMPLETTDISK-HAUPTSCHUEBEo DBPBHSRS(DBHSPB)2:P13,1:P14,RS(P10):KOMPLETTDISK-RESTSCHUB P15,0:P16,0:P17,0:KEINE-RESTDISK! (21):::::10:"** 160-SPUR-KOPY **":10:"** VON U. STIEHL **"::(4);"PREFIX":SP$:STA(DB256):P2,DB(P3)256:DISK-BLOCKANZAHLf P5,(HB256):P4,HB(P5)256:HARD-BLOCKANZAHL KD1:P6,KD:RD0:P7,RD:P8,0:P9,0:KOMPLETTDISK P10,PA256:P11,PE256:PBPL512:ANFANG-ENDE-LAENGE HS(DBPB):P12,HS:P13,0:Pqd*160-SPUR-KOPY*$nDU6:HU68xDB1280:HB1280LPA02560:$0A00`PE48640:$BE00PLPEPA:PL512(PL512)ĺ"NUR GANZE BLOCKANZAHL!":P768:PAGE-3-PARAMETERP,DU160:+128-FUER-D2P1,HU16128:+128-FUER-D2. P3,΍ԺԢԠĤңҺŠǥ źԠ¨堯뢍ԠԠŠԮŢ͠РԺԺ¨ŢĤңĤңϠ͍͠却ҠʽϠɺԠҤШˬʩƠʯԠʯΠԍԠʺԍԺ˽ ԍԠҤҤҤ뺢ԠҤҤԠҤڢ͠͠庢ԢҤΤΠԢҺ˽ ԍƠӤΤΠԺԢӺ˽ ԍƠԤΤΠԺԢҤԠҤ󺠢ȍԠҤҤҤҤ󺠢ȍƠҤΤĠԤΤĠӤΤΠԺԢϠҤҤ͠󍴰Ԡ¨Ҥ堢Ҥ͠ҤҤҤԠƨةĤƤԍԠҤҤ󍳹ԠҤ͢ҤҤ͠堸ԠҤѢҤҤ΢Ҥ͠𠹰䍴ԠҤĢҤҤҤҤҤҤԢԢ͠ҤĤң͸ԠҤҤ͠퍳͠ح    CA :"DR. ALFRED HUETHIG VERLAG":"HEIDELBERG POSTF. 102869"Ա٠ԲԬ٠Ԭ٠٠썠̠ԲҠōҠ֍٠ԱԬٍѠԲҠԍٍŠԱԲҠٍР΢ѠԳРʢŠԲčРčҠԱӠѠгЍвҠàРŠв፪ 򍪍гŠРōӍѠԱŠРōӍѠ˿Ҡ 뿍ЍŠб 뿍 ˿ˍѠԱ 򍪍бàҍ򍪍бàҍàЍčРčҠԱӠѠгЍвҠàРŠв፪ 򍪍г̠᭾ؠȠ鍠ǍŠԵ٠̠鍠ؠȠ፪ 򍪍ԵҍˍЍ 뿍 ˿Ѡ˿ ԫ Գ٠ԍؠԍ٠Ԡ᭾ؠԠ鍠ǠŠԴ٠Ԡ鍠ؠԠ፪ Դ٠ؠ٠ƶō ƶƍ٠ԱԬٍԬٍٍ̠ԱԲÍҠȍҠĠ ⭍ҠĠԳԠԳԫҠ֠àōРՠ쮍Рՠ РՠàРՠĠЭĠՠŠ򮍪 ԠǍƶ  ƶÍ ƶ芊ϬŠɬč͠ōƠ΢ΠŠԠĤàԮϢĠĤĢƤƠĠΠŠϬ͠Ҡ͍ŠŠŠŠŠŠŠŠŠϫвԠƤƠƤΠƤĢԠŠ忠 ҠŠ ƠʢΠԠĤĢƤƤƤ͢ԠԠĤҤԠҤŠԠԠĤΠТƠˠĠˠΠŠбˠ͠Šˍвˠ б   ATALOG,S6,D1":"DUPLIKATDISK, RICHTIG J/N ";K <X$:X$"N"50:X$"J"60Y F:S:D,V[ :( (4)"BLOAD MDB.KOPY.OBJ":r(21)::::"MDB.KOPIERER DOS 3.3":"VON U.STIEHL 1.4.86"::S3300V210:D12::"BACKUP FUER V";V;",D";D;" EINLEGEN ";:49168,0:X$(S3,716:S4,D:S5,V:S6,616:S7,1:S8,0, 2::(4)"C Ӎ î Ű Ƞؠ󠿍ؠѠȰ፠ŴîͩŠĠ庠ȰؠԠ̠İҠĸ 庠ҍҠҠà Ӎ ҠؠؠР堿ѠҠ὾ éĠؠŠŠƠؠİҠҠĠƠРũ٠ŠĠ庠àӍ٠躠ǡ ˧ Ԡà ʯά Ŭ ź  ͠à ҧ  Πՠ獪 îͭ Š Ԡ鍪Ԡàҧ ӍԠàç Ǡà ǡà Ŭ Һ  Ǡà ũ٠ٍŠǍàĠ婍àƍؠ󠿍ŠǠ󽾠àŰî͍٠ōȍŰ٠ŰӍӠԭ ԠҠƹ썠ŠŠ򩍪 Ġ٠ԍ٠àéčō٠Š蠨ũƍؠΫǠé٠ҠƸàӲ٠Ơ٠젿ŠԠ٠Ạ捠РԠàԍРԫΫӠԠàΠẠ٠žԠΠΠ占٠΍ŠÍ٠Ԡð덠РԫΠ砿àԫ΍ӠĠ὾Ӎؠ占 ΫҠƵРԫΫӠ砿ҠẠРĴŠ àԠՠ±Ԡՠ·ԠՠĴƲ٠ՠŸ¸ٍՠŸ¸ÍǠԭ î  Ҡՠà箍֠ՠŠ͠ՠ ̠ԠՠƠ Э Ҡՠ¸ΠՠŠǠՠİà ȠՠŠŠՠŠՠàԠՠİŠՠı堿ΠՠIJ蠿ɠՠij쮠ԠՠĴՠķ ԠՠՠՠΠՠΠՠ ƠՠàڠՠĠΠՠŠΠՠĵͪ ūӍ Ԡՠ⠤ Ӯ ҍ 卪 詨 Ӎ                 !!! ! ! ! ! !!!!!!!!!""" " " " " """""""""         ˠԠȠ̭ ĭ ӮР! ԮϮЮϠ"ϮЮϠٮҠԮٮҮϠ!ٮҮϠ ԮЮ ԮЮ ԮЮ ԮЮ ԮЮ ԮȠ ЮȠ ®ٮʠ!ҠԠ"í ԮϠ ԮŠ;ԮؠԮԮؠ7ԮŮӠԠ­®ٮ̠®٠Ԯ®ٮʠ z #?Π ፠Ҡɠ ҠԠ ፠ҠԠҠԠҠɠ ҠӍ ŠؠƠ὾占ؠŠؠūƩҠԠ򠿍ӠŠҠ͠ẠؠŠ占٠ū ŠҠŠ庍à墺 Ҡ彶ؠūƩҠԠ򠿍ӠŠҠ͠ẠؠŠ占٠ūؠŠ占٠ūŠРѠР򠧬 ŠŠŠؠ¸٠¹Ҡî͠ ůźؠ庍ؠŠ彰ؠūؠؽƍؠŠǰ٠蠰ؠد٠捠٠ŠŠ Πؠçç ҠĵŠ卪 د źŠРŠѠΠ὾٠ǰ٠٠ĠƠ占٠ҠҠŠ̍٠獠ҠĠ̭젿ӠРŠ὾ؠԠō٠獠ҠčàŠĠàӠ ŭ ҍҠԍɠΰҠР˧˭Šɠ占ҠɠẠɠΰɠРӧ堨ͯѠŠР֧ŠŠĩŠҠŠẠ ʯ   ΰҠԠԠРýˍѠÍĠƠ占РէŠ ¸ دٺ͠Ҡàͭ占ؠد٠٠ĠӠ  à占¹àč嫱Š占ÍàƠ占ƍà٠РŲàō ŠƠ砿ѠĠ὾ڠ̠ àˠ ¸¸占àƠ占؍àРͺӠǠẠ硍ؠ占¸¸ 獠¹àРijղ ¸ 捠٠Š獠Ҡ³ҠıΠРԠ ˠ占占àƠҠ΍РŧѠԠŽ占Р占ŠŠŠѠӍРΧνѠύРʧŠčӠÍϠЍҠǍЍĠӍ 纍ǠǠ̍àč¸àҠ殍֠ Ţà占à΍͠ ̢ҠΠԠ٠ōҠ³ѠĠҠƳ׽Ҡµà׺נҠĸŠҍΠ򭍠РDzԠҠµàźŠРԠ ʯά ٠ō 纍Ǡ獠ҠIJǠ٠ōҠ³ǰҠƳҠΠ占РŧŽ占ѠԍРק׽ŠǰůР᧠àıРӠıĠƠẠؠıРŠ򠿍ѠĠ὾獠РѠŠ ŠİϰŠ͠٠ŠĠİؠؠѠĠ占àɠ٠Ạ Ѡı፠٠ Ѡıɠͤ򠿍àڠӍ  ֽ  Ġ٠͍Ѡ͍Š٠Ġ䠰ҠĵĠ ٠䭰ààΠ򭱩Π ÍàΠ占ƠӠ٠堿ѠŲҠРù򡍪 Ų獠ڠ栰΍ؠÍà٠٠Π  Ҭ ѠŲ፠ؠؠ¸¸๹ҠԠ荾 Π  硍ؠ΍Ԡֺ֠ҠĠ  ؍ؠՠ荠ի堲 ͭ Ҡĵ΢ 䭰Íà 䭍 Ӱٍٍٍ٠΍ӠӰ 퍪 ؍ ؍؍؍ؠΠ  Ү Ѡҍؠ΍ 򭍪 ٠  ō  ؠ¸ԠɠֺҠĠ 亍ӠҠԠ͠ҠԠӠҠ὾򡍠РàѠàˍàҠ򽾠 䭍 ˺àРĸ Ҡ͠٠ōҠ³РĴ򍪍 ¸ 捪 衩àҠàˠΠ占Рԍ àðijĠ捠٠ijĠ˫Ҡ³䍠Рı箍 ΠҠİÍРѠÍĠƍàӍ ì κàԠð덠ðčРàŠàӍ 䍪 ɠΰŠРԧ蠿Š΍ҠΠẠɠΰΠҠ̧̠ŠĠ彾Π躠Ѡΰ򍪍 ì κ